/**
 * 此文件提供手动修复admin用户权限的方法
 * 
 * 如果admin用户登录后仍然看不到知识图谱分析菜单，
 * 请在浏览器控制台中执行以下命令：
 * 
 * fixAdminPerms()
 */

// 将函数添加到window对象，使其可在控制台中直接调用
window.fixAdminPerms = function() {
  console.log('开始修复admin用户权限...');
  
  // 获取用户信息
  const userInfoStr = localStorage.getItem('userInfo');
  if (!userInfoStr) {
    console.error('未找到用户信息，请确保已登录');
    return false;
  }
  
  try {
    const userInfo = JSON.parse(userInfoStr);
    console.log('当前用户信息:', userInfo);
    
    // 检查是否为admin用户
    if (userInfo.username !== 'admin') {
      console.error('此功能仅适用于admin用户');
      return false;
    }
    
    // 确保permissions是数组
    if (!userInfo.permissions || !Array.isArray(userInfo.permissions)) {
      userInfo.permissions = [];
    }
    
    // 需要添加的权限
    const requiredPermissions = [
      'graph:view',
      'analysis:centrality',
      'analysis:community',
      'analysis:pathfinding',
      'analysis:supply-chain',
      'analysis:industry-chain',
      'analysis:company-risk',
      'analysis:high-tech',
      'analysis:product-chain',
      'analysis:company-stats'
    ];
    
    // 添加缺失的权限
    let added = 0;
    for (const perm of requiredPermissions) {
      if (!userInfo.permissions.includes(perm)) {
        userInfo.permissions.push(perm);
        added++;
      }
    }
    
    console.log(`已添加${added}个权限，当前权限列表:`, userInfo.permissions);
    
    // 保存回localStorage
    localStorage.setItem('userInfo', JSON.stringify(userInfo));
    
    // 通知用户
    console.log('权限修复完成，请刷新页面');
    alert('权限修复完成！请刷新页面查看效果。');
    
    return true;
  } catch (error) {
    console.error('修复权限时出错:', error);
    return false;
  }
};

// 自动检查admin用户并提示
(function() {
  setTimeout(() => {
    try {
      const userInfoStr = localStorage.getItem('userInfo');
      if (!userInfoStr) return;
      
      const userInfo = JSON.parse(userInfoStr);
      if (userInfo.username === 'admin') {
        const hasGraphView = userInfo.permissions && userInfo.permissions.includes('graph:view');
        const hasAnalysis = userInfo.permissions && userInfo.permissions.some(p => p.startsWith('analysis:'));
        
        if (!hasGraphView && !hasAnalysis) {
          console.log('%c=== admin用户权限检查 ===', 'background: #ff9800; color: white; padding: 2px 5px; border-radius: 3px;');
          console.log('%c如果看不到知识图谱分析菜单，请在控制台执行: fixAdminPerms()', 'color: #ff5722; font-weight: bold;');
        }
      }
    } catch (e) {
      // 忽略错误
    }
  }, 3000);
})();

// 导出供其他文件使用
export function fixAdminPermissions() {
  return window.fixAdminPerms();
} 